
	package DAO;

	import java.sql.Connection;
	import java.sql.PreparedStatement;
	import java.sql.ResultSet;
	import java.sql.SQLException;
	import java.sql.Statement;
	import java.util.ArrayList;
	import java.util.List;

	import Modelo.*;
	import DBConection.ConexionBD;

	public class CargoDao {

	    private Connection conn;

	    public CargoDao() {
	        conn = ConexionBD.getConnection();
	    }

	    public void addCargo(Cargo objCargo, Cargo_Dependencia objcar_dep) {
	       
	    	
	    	try {
	        	  
	        	String sql = "INSERT INTO "+ConexionBD.getNombre_BD()+".TBL_Cargos(Nombre_Cargo)" +
	                " VALUES (? )";
	            PreparedStatement ps = conn.prepareStatement(sql);
	            ps.setString(1, objCargo.getNombre_Cargo());
	            ps.executeUpdate();
	            
	            String sql2 = "INSERT INTO "+ConexionBD.getNombre_BD()+".Tbl_Cargos_Dependencias(DependenciaId)" +
		                " VALUES (? )";
		            PreparedStatement ps2 = conn.prepareStatement(sql2);
		            ps2.setInt(1, objcar_dep.getDependenciaId());
		            ps2.executeUpdate();

	        } catch (SQLException e) {
	            e.printStackTrace();
	        }
	    }

	    public void removeCargo(int CargoId) {
	        try {
	                String sql = "DELETE FROM "+ConexionBD.getNombre_BD()+".TBL_Cargos WHERE CargoId=?";
	            PreparedStatement ps = conn.prepareStatement(sql);
	            ps.setInt(1, CargoId);
	            ps.executeUpdate();

	        } catch (SQLException e) {
	            e.printStackTrace();
	        }
	      }

	    public void editCargo(Cargo objCargo) {           
	        try {
	                String sql = "UPDATE "+ConexionBD.getNombre_BD()+".TBL_Cargos SET Nombre_Cargo=?" + 
	            " WHERE CargoId=?";
	            PreparedStatement ps = conn.prepareStatement(sql);
	           
	            ps.setString(1, objCargo.getNombre_Cargo());
	            ps.setInt(2, objCargo.getCargoId());
	            ps.executeUpdate();            

	        } catch (SQLException e) {
	            e.printStackTrace();
	        }
	    }
	    
	    public List<Cargo> getAllCargos() {
	        List<Cargo> objCargos = new ArrayList();
	        try {
	            String sql = "SELECT * FROM "+ConexionBD.getNombre_BD()+".TBL_Cargos";
	            PreparedStatement ps = conn.prepareStatement(sql);
	            ResultSet rs = ps.executeQuery();
	            while (rs.next()) {
	                Cargo objCargo = new Cargo();
	                objCargo.setCargoId(rs.getInt("CargoId"));
	                objCargo.setNombre_Cargo(rs.getString("Nombre_Cargo"));
	                objCargos.add(objCargo);
	            }
	        } catch (SQLException e) {
	            e.printStackTrace();
	        }

	        return objCargos;
	    }

	    public Cargo getCargoById(int CargoId) {
	    	Cargo objCargo = new Cargo();
	        try {
	                String sql = "SELECT * FROM "+ConexionBD.getNombre_BD()+".TBL_Cargos WHERE CargoId=?";
	            PreparedStatement ps = conn.
	                    prepareStatement(sql);
	            ps.setInt(1, CargoId);
	            ResultSet rs = ps.executeQuery();

	            if (rs.next()) {

	                objCargo.setCargoId(rs.getInt("CargoId"));
	                objCargo.setNombre_Cargo(rs.getString("Nombre_Cargo"));
	            }
	        } catch (SQLException e) {
	            e.printStackTrace();
	        }
	        return objCargo;
	    }
	    
	    public Cargo_Dependencia getca_depById(int CargoId) {
	    	Cargo_Dependencia objcadep = new Cargo_Dependencia();
	        try {
	                String sql = "SELECT * FROM "+ConexionBD.getNombre_BD()+".TBL_Cargos_Dependencias WHERE CargoId=?";
	            PreparedStatement ps = conn.
	                    prepareStatement(sql);
	            ps.setInt(1, CargoId);
	            ResultSet rs = ps.executeQuery();

	            if (rs.next()) {

	            	objcadep.setCargoId(rs.getInt("CargoId"));
	            	objcadep.setDependenciaId(rs.getInt("DependenciaId"));
	            }
	        } catch (SQLException e) {
	            e.printStackTrace();
	        }
	        return objcadep;
	    }
	}


